Cloudflare Zero Trust のポリシー設定に使うアプリケーション一覧を確認する
Cloudflare Zero Trust では、宛先に応じた細かいアクセス制御が可能です。
アクセス制御はNetwork(IPアドレス、ポートレベル)・DNS・HTTPのポリシーによって設定が可能です。
各種ポリシーにおいて、Traffic の条件を指定する時に、Selector に Application という項目があり、あらかじめCloudflareで登録されているサービスを選択することができます。
グローバルで有名なSaaSサービスが登録されており、これを選択することで、自分でサービスで使われているドメインを調べる必要がありません。
どんなアプリケーションがあるのかざっと確認してみると、非常に多くのアプリケーションが選択できることが分かります。
いざ設定しようとした時に、たくさんあるので設定したいサービスがあるのか分からない時があります。
そこでどのアプリケーションがあるのか網羅的に確認したいと思います。
アプリケーション一覧の取得方法
ドキュメント等でリストは公開されておらず、Cloudflare の API からリストを取得することができます。
API の設定
Cloudflareのコンソールにログインして、トップ画面でマイプロファイルを選択します。
APIを叩くためのトークンを作成し、トークン値をひかえておきます。
また、APIを叩く時にCloudflareのアカウントIDを指定する必要があるので、こちらも確認してひかえておきます。
アカウントIDは、Cloudflareコンソールにログインした後、アカウントを選択し遷移したダッシュボードのURLから確認することができます。
こんな感じのサービスを色々選択できる画面ですね。
この時のアクセスしているURLの以下の部分がアカウントIDになります。
https://dash.cloudflare.com/{account_id}
アプリケーション一覧の取得
APIの準備ができたので、一覧を取得します。
先程のAPIのドキュメントの通り、APIを叩きます。
{account_id}と{api_token}は確認した値で読み替えてください。
curl -X GET "https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/app_types" -H "Authorization: Bearer {api_token}" -H "Content-Type: application/json"
あとは、CSVで取得してスプレッドシートで確認すると見やすそうです。
以下のようにして、CSVに整形しました。
curl -X GET "https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/app_types" -H "Authorization: Bearer {api_token}" -H "Content-Type: application/json" | jq -r '["id","name","description","application_type_id"], (.result[] | if .description == null then .description = "" end | if .application_type_id == null then .application_type_id = "" end | [.id,.name,.description,.application_type_id]) | @csv' > gateway_applications.csv
「jq」の使い方などはこちらを参考にするとよいかと思います。
CSVを確認するとこんな感じでリスト化できました。
Cloudflare Zero Trustのポリシー設計の際などにぜひご活用ください。